home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Celestin Apprentice 5
/
Apprentice-Release5.iso
/
Source Code
/
C++
/
Applications
/
PICSee Dust 1.01
/
Preferences source
/
PICS_OpenFilePane.cpp
< prev
next >
Wrap
C/C++ Source or Header
|
1995-11-16
|
4KB
|
110 lines
#include "PICS_PreferencesPanes.h"
#include "PICSViewer.h"
enum {
// Opening file (show progress) pane
kOpenFilePane_AlwaysShowProgressRadio = kPrefsDlog_LastItem,
kOpenFilePane_NeverShowProgressRadio,
kOpenFilePane_ConditionalShowProgressRadio,
kOpenFilePane_FileSizeInput,
kOpenFilePane_LineSeparator,
kOpenFilePane_Box
};
// ---------------------------------------------------------------------------
void PrefsDialogSetupOpenFilePane(DialogPtr prefsDlog) {
short fileSize = 150;
if ((**sPrefsData->prefs).showOpenProgress == kAlwaysShowOpenProgress) {
// Always show progress
SelectRadioBtn(prefsDlog, kOpenFilePane_AlwaysShowProgressRadio,
kOpenFilePane_AlwaysShowProgressRadio,
kOpenFilePane_ConditionalShowProgressRadio);
}
else if ((**sPrefsData->prefs).showOpenProgress == kNeverShowOpenProgress) {
// Never show progress
SelectRadioBtn(prefsDlog, kOpenFilePane_NeverShowProgressRadio,
kOpenFilePane_AlwaysShowProgressRadio,
kOpenFilePane_ConditionalShowProgressRadio);
}
else {
// Show progress if file is over "n" KBytes in size
SelectRadioBtn(prefsDlog, kOpenFilePane_ConditionalShowProgressRadio,
kOpenFilePane_AlwaysShowProgressRadio,
kOpenFilePane_ConditionalShowProgressRadio);
fileSize = (**sPrefsData->prefs).showOpenProgress;
}
Str15 fileSizeStr;
NumToString(fileSize, fileSizeStr);
SetDItemText(prefsDlog, kOpenFilePane_FileSizeInput, fileSizeStr);
} // END PrefsDialogSetupOpenFilePane
// ---------------------------------------------------------------------------
Boolean PrefsDialogGetOpenFilePaneSettings(DialogPtr prefsDlog) {
if (GetDlogCtlValue(prefsDlog, kOpenFilePane_AlwaysShowProgressRadio)) {
(**sPrefsData->prefs).showOpenProgress = kAlwaysShowOpenProgress;
}
else if (GetDlogCtlValue(prefsDlog, kOpenFilePane_NeverShowProgressRadio)){
(**sPrefsData->prefs).showOpenProgress = kNeverShowOpenProgress;
}
else {
long fileSize;
if (CheckValidNumeral(prefsDlog, kOpenFilePane_FileSizeInput, &fileSize)) {
if (fileSize < 1) {
SysBeep(10);
SelectDialogItemText(prefsDlog, kOpenFilePane_FileSizeInput, 0, 32767);
return(false);
}
else {
(**sPrefsData->prefs).showOpenProgress = fileSize;
}
}
else
return(false);
}
return(true);
} // END PrefsDialogGetOpenFilePaneSettings
// ---------------------------------------------------------------------------
void PrefsDialogOpenFilePaneHit(DialogPtr prefsDlog, short itemHit) {
switch(itemHit) {
case kOpenFilePane_AlwaysShowProgressRadio:
case kOpenFilePane_NeverShowProgressRadio:
case kOpenFilePane_ConditionalShowProgressRadio:
SelectRadioBtn(prefsDlog, itemHit,
kOpenFilePane_AlwaysShowProgressRadio,
kOpenFilePane_ConditionalShowProgressRadio);
break;
}
} // END PrefsDialogOpenFilePaneHit
// ---------------------------------------------------------------------------
void PrefsDialogOpenFilePaneUpdate(DialogPtr prefsDlog, EventRecord *theEvt, Boolean frontMost) {
Rect lineRect;
GetDItemRect(prefsDlog, kOpenFilePane_Box, &lineRect);
GrayDrawShadowBox(&lineRect, NULL);
GetDItemRect(prefsDlog, kOpenFilePane_LineSeparator, &lineRect);
GrayDrawShadowLine(&lineRect, NULL);
} // END PrefsDialogOpenFilePaneUpdate
// ---------------------------------------------------------------------------
void PrefsDialogOpenFilePaneActivate(DialogPtr prefsDlog, Boolean activate) {
short hiliteMode = activate ? 0 : 255;
for (short i = kOpenFilePane_AlwaysShowProgressRadio;
i <= kOpenFilePane_ConditionalShowProgressRadio; i++) {
HiliteControl((ControlHandle)GetDItemHdl(prefsDlog, i), hiliteMode);
}
} // END PrefsDialogOpenFilePaneActivate